import logging
import os
from  util.singelMode import singleton
 
@singleton
class Clog:
    '''
    日志级别：
    critical > error > warning > info > debug,notset
    级别越高打印的日志越少，反之亦然，即
    debug    : 打印全部的日志(notset等同于debug)
    info     : 打印info,warning,error,critical级别的日志
    warning  : 打印warning,error,critical级别的日志
    error    : 打印error,critical级别的日志
    critical : 打印critical级别
    '''

    def __init__(self):
        self.__log = logging.getLogger("TimeCoin")
        self.__log.setLevel(logging.DEBUG)
        # 建立一个filehandler来把日志记录在文件里，级别为debug以上
        path = os.path.join("logfile","log.txt")
        isExists=os.path.exists("logfile")
        
        if not isExists:
            # 如果不存在则创建目录
            # 创建目录操作函数
            os.makedirs("logfile") 
        isExists=os.path.exists("logfile/log.txt")
        if not isExists:
            os.mknod(path)
        
        
        fh = logging.FileHandler(path)
        fh.setLevel(logging.DEBUG)

        # 建立一个streamhandler来把日志打在CMD窗口上，级别为error以上
        ch = logging.StreamHandler()
        ch.setLevel(logging.DEBUG)

        # 设置日志格式
        formatter = logging.Formatter("%(asctime)s -%(pathname)s-%(lineno)d- %(name)s - %(levelname)s - %(message)s")
        ch.setFormatter(formatter)
        fh.setFormatter(formatter)

        #将相应的handler添加在logger对象中
        self.__log.addHandler(ch)
        self.__log.addHandler(fh)
    def __call__(self):
        return self
    @property
    def logger(self):
        return self.__log

    def init(self):
        pass
        
        

       
    

